package com.egao.common.module.pepesi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.egao.common.core.web.JsonResult;
import com.egao.common.module.pepesi.entity.PepsiStudent;
import com.egao.common.module.pepesi.entity.vo.PepsiStudentVO;


/**
 * 学生的100件事接口
 * @author pyx
 */
public interface PepsiStudentService extends IService<PepsiStudent> {

    /**
     * 查询学生100件事情树形列表和相应完成未完成数字
     * 如果没有查询到当前学生100件事就立即生成并返回
     * @param userId 登录人ID
     * @param finishState 完成状态
     * @return treeList-100件事树形结构 和 finishCount-完成、notFinishCount-未完成数字
     */
    JsonResult pepsiStudentData(Integer userId, Integer finishState);

    /**
     * 根据学生id查询学生百事列表
     * @param studentId 学生id
     * @param finishState 状态
     * @return
     */
    JsonResult pepsiData(Integer studentId,Integer finishState);

    /**
     * 添加学生100件事数据
     * @param studentId 学生ID
     * @return true添加成功 false添加失败
     */
    boolean savePepsi(Integer studentId);

    /**
     * 更新学生100件事某条数据
     * @param pepsiStudentVO pepsiStudentVO
     * @return JsonResult
     */
    JsonResult updatePepsi(PepsiStudentVO pepsiStudentVO);

    /**
     * 查询详情信息
     * @param id 100件事某项数据id
     * @return PepsiStudentVO
     */
    PepsiStudentVO getId(Integer id);

    /**
     * 打卡学生人数
     * @param year 学生毕业年份
     * @return 打卡学生人数
     */
    Integer countStudent(Integer year, Integer degree);

    /**
     * 完成件数
     * @param year 学生毕业年份
     * @return 完成件数
     */
    Integer countPepsi(Integer year, Integer degree);

}
